package com.fei.wechat.admin.controller;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fei.wechat.common.constant.Constants;
import com.fei.wechat.middlewar.mode.vo.admin.CurrentUser;

/**
 * 描述: AdminBaseController控制层
 * 版权: Copyright (c) 2018 
 * 公司: 飞翔科技 
 * 作者: 张进飞 
 * 版本: 1.0 
 * 创建日期: 2018年3月6日 
 * 创建时间: 下午10:33:34
 */
public class BaseController
{
    
    /**
     * 日志
     */
    protected Logger logger = LoggerFactory.getLogger(getClass());
    
    /**
     * 描述：获取登录IP
     * 作者：张进飞
     * 时间：2018年5月20日 上午11:54:48
     * @param request
     * @return
     */
    public String getLoginIP(HttpServletRequest request)
    {
        String ip = request.getHeader("x-forwarded-for");
        if (!checkIP(ip))
        {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (!checkIP(ip))
        {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (!checkIP(ip))
        {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
    
    private boolean checkIP(String ip)
    {
        if (ip == null || ip.length() == 0 || "unkown".equalsIgnoreCase(ip) || ip.split(".").length != 4)
        {
            return false;
        }
        return true;
    }
    
    /**
     * 描述：获取当前用户
     * 作者：张进飞
     * 时间：2018年6月30日 下午10:10:06
     * @param request
     * @return
     */
    public CurrentUser getCurrentUser(HttpServletRequest request)
    {
        CurrentUser user = (CurrentUser) request.getSession().getAttribute(Constants.USER_LOGIN_FLAG);
        return user;
    }
}
